package com.lonely.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lonely.system.domain.entity.SysUserRole;
import com.lonely.system.domain.dto.role.BindRoleUsersDto;
import com.lonely.system.domain.dto.role.BindUserRoleDto;
import com.lonely.system.domain.dto.user.SysUserRoleNameDto;
import com.lonely.system.domain.vo.system.user.SysUserDetailVo;

import java.util.List;

/**
 * @author: 黄志标
 * @date: 2025/6/3 14:57
 * @description: 用户角色服务
 */
public interface ISysUserRoleService extends IService<SysUserRole> {


    /**
     * 获取用户角色信息
     *
     * @param userId
     * @return
     */
    List<SysUserDetailVo.RoleInfo> getRolesByUserId(Long userId);


    /**
     * 绑定用户角色关联
     *
     * @param bindUserRoleDto
     */
    void bindUserRoles(BindUserRoleDto bindUserRoleDto);

    /**
     * 解除用户角色关联
     *
     * @param unBindUserRoleDto
     */
    void unBindUserRoles(BindUserRoleDto unBindUserRoleDto);

    /**
     * 查询用户角色名称映射
     *
     * @param userIds
     * @return
     */
    List<SysUserRoleNameDto> queryUserRoleNames(List<Long> userIds);

    /**
     * 绑定角色用户关联
     *
     * @param bindRoleUsersDto
     */
    void bindRoleUsers(BindRoleUsersDto bindRoleUsersDto);

    /**
     * 解除角色用户关联
     *
     * @param unBindRoleUsersDto
     */
    void unBindRoleUsers(BindRoleUsersDto unBindRoleUsersDto);
}
